package exercises.leetcode;

/**
 * <a href="https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/">
 * 剑指 Offer 05. 替换空格</a>
 *
 * <p><span color="#87CEEB">描述:</span>
 * 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。
 *
 * @author or2
 * @date 2021年09月21日 时间: 20:50
 */
public class Offer05 {
    public String replaceSpace(String s) {
        /*return s.replaceAll(" ", "%20");*/
        int blank = 0;
        char[] sChars = s.toCharArray();
        for (char c : sChars) {
            if (c == ' ') {
                blank++;
            }
        }

        char[] ansChars = new char[s.length() + blank * 2];
        /*复用, 填充答案数组*/
        blank = 0;
        for (char sChar : sChars) {
            if (sChar != ' ') {
                ansChars[blank++] = sChar;
            } else {
                ansChars[blank++] = '%';
                ansChars[blank++] = '2';
                ansChars[blank++] = '0';
            }
        }

        return new String(ansChars);
    }
}
